package com.digua.base.base

import android.os.Bundle
import android.view.View.LAYER_TYPE_HARDWARE
import android.webkit.WebSettings
import com.digua.base.databinding.ActivityBaseWebBinding


open class BaseWebActivity : Activity<ActivityBaseWebBinding>() {
    private var url: String? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        initBaseUI()
        initBaseData()
    }

    private fun initBaseUI() {
        ui.web.clearCache(false)
        ui.web.setLayerType(LAYER_TYPE_HARDWARE, null)
        //获取webSettings
        val ws = ui.web.settings
        // 网页内容的宽度自适应屏幕
        ws.loadWithOverviewMode = true
        ws.useWideViewPort = true
        // 保存表单数据
        // 保存表单数据
        ws.saveFormData = true
        // 是否应该支持使用其屏幕缩放控件和手势缩放
        // 是否应该支持使用其屏幕缩放控件和手势缩放
        ws.setSupportZoom(true)
        ws.builtInZoomControls = true
        ws.displayZoomControls = false
        // 启动应用缓存
        //ws.setAppCacheEnabled(true);
        // 设置缓存模式
        ws.cacheMode = WebSettings.LOAD_DEFAULT
        // setDefaultZoom  api19被弃用
        // 设置此属性，可任意比例缩放。
        ws.useWideViewPort = true
        // 告诉WebView启用JavaScript执行。默认的是false。
        ws.javaScriptEnabled = true
        //  页面加载好以后，再放开图片
        ws.blockNetworkImage = false
        // 使用localStorage则必须打开
        ws.domStorageEnabled = true
        // 排版适应屏幕
        ws.layoutAlgorithm = WebSettings.LayoutAlgorithm.NARROW_COLUMNS
        // WebView是否新窗口打开(加了后可能打不开网页)
        ws.setSupportMultipleWindows(true)
        // webview从5.0开始默认不允许混合模式,https中不能加载http资源,需要设置开启。MIXED_CONTENT_ALWAYS_ALLOW
        ws.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW/* 设置字体默认缩放大小(改变网页字体大小,setTextSize  api14被弃用)*/
        ws.textZoom = 100
    }

    private fun initBaseData() {
        url = intent.getStringExtra("url")
        url?.let { ui.web.loadUrl(it) } ?: finish()
    }

}